<script>
  // 1. 写出以下函数的名字：
  // 字符串变量：
  // 1）取出子字符串用什么函数？

  // 2）变成小写字母用什么函数？
  // toLowerCase()
  // 3）去掉两端空格用什么函数？
  // trim()
  // 4）取出指定索引位置字符的数字编码用什么函数？
  // indexOf()
  // 2. 字符串的indexOf和search函数有什么区别？
  // search支持正则表达式
  // indexOf查找字符串索引，找不到返回-1
  // 3. 数组arr=['a', 'b', 'c', 'd']，要求不用索引（arr[index])的形式交换开头和结尾的元素，交换后arr的值为['d', 'b', 'c', 'a']
  var arr = ["a", "b", "c", "d"];
  var a = arr.pop(),
    b = arr.shift();
  arr.push(b);
  arr.unshift(a);
  console.log(arr);

  // 4. 变量filename的值是文件名，如何找出的扩展名，比如
  // 'abc.jpg'的扩展名是'jpg'
  // 'hello.js'的扩展名是'js'
  // '20210813.log.txt'的扩展名是'txt'
  // 'hosts'的扩展名是''
  var bbb = ["abc.jpg", "hello.js", "20210813.log.txt", "hosts."];
  // var res = bbb.map(function (v) {
  //   var index = v.lastIndexOf(".") + 1;
  //   return v.slice(index);
  // });
  // console.log(res);
  function ext(filename){
    let arr=filename.split('.')
    if(arr.length==0){return ''}
    return arr[arr.length-1]
  }
// ext()
  // 5. 'x=1&y=2&c=3'如何转化成{x:1, y:4, c:9}
  var str='x=1&y=2&c=3'
  str.split('&').reduce((obj,item)=>{
    let [key,value]=item.split('=')
    obj[key]=value*value
    return obj
  },{})
 
//   var str = "x=1&y=2&c=3";
//   var arr = str.split("&");
// //   console.log(arr);
//   var obj = {};
//   arr.map(function (v) {
//     obj[v[0]] = v[2] * v[2];
    
//   });
// console.log(obj);
  // 6. 关于数组的迭代方法请回答:
  // 1）如果想判断数组元素是否全部符合某个条件，使用哪个方法？
  // every
  // 2）如果想给一数组DOM元素绑定click事件，使用哪个方法？
  // map
  // 3）如果想找出一数组DOM元素中所有包含某class名的元素，应该使用哪个方法？
  // filter(fn)
  // 7. arr=[1,2,3]，arr2 = ['a', 'b', 'c']如果想把arr2的元素插入到arr1的下标1位置（其余元素都后移，结果是arr = [1, 'a', 'b', 'c', 2, 3]），如果用数组的splice函数应该怎样写？
  var arr = [1, 2, 3],arr2 = ["a", "b", "c"];
  var res = arr.splice(1, 3);
  var r = [...arr, ...arr2, ...res];
  console.log(r);
  // 8. 如有一个数字组成的数组，其中的最大值或最小值应该怎样找出来？
  var arr = [2, 3, 4, 10, 12];
  var a = Math.max(...arr);
  console.log(a);
  var n = Math.min(...arr);
  console.log(n);
  // 9. 写一个zip(arr1, arr2)函数，效果(arr1和arr2的长度肯定一样)
  var arr1 = [1, 2, 3, 4];
  var arr2 = ["a", "b", "c", "d"];
  // function zip(arr1,arr2){
  //   return arr1.reduce((ret,item,index)=>{
  //   ret[index]=[arr1[index],arr2[index]]
  //   return ret
  //   },[])
  // }
  // zip(arr1,arr2)


function zip(arr1,arr2){
  return arr1.map((item,index)=>[item,arr2[index]])
}
console.log(zip(arr1,arr2));


  // zip([1,2,3,4], ['a', 'b', 'c', 'd']) // [[1,'a'], [2,'b'], [3,'c'], [4,'d']]
</script>
